window.onload = function () {
    // 需求1.获取用户信息渲染头像 和欢迎信息
    //  因为后面还要用到这个方法,所以封装成函数
    getUserInfo()

    // 需求2:退出登录
    document.querySelector('#logout').onclick = function () {
        // 弹出层询问
        layer.confirm('是否确认退出登录？', { icon: 3, title: '提示' }, function (index) {
            // 退出登录: 强行跳转到登录页，销毁token
            location.href = '/login.html';
            localStorage.removeItem('token');
            // 弹出层自带，关闭对话框
            layer.close(index);
        });
    }

}

//全局函数  //渲染用户头像和欢迎词
function getUserInfo() {
    // 发送ajax请求
    axios({
        url: '/my/userinfo',
        method: 'get',
        // headers: {
        //     Authorization: localStorage.getItem('token')
        // }
    }).then(({ data: res }) => {
        // 获取用户信息失败
        if (res.status !== 0) {
            layui.layer.msg(res.message);
            // location.href = '/login.html'
        } //移到响应拦截器    
        // 获取用户信息成功  渲染用户头像和欢迎词
        // console.log(res.data);
        // 1.渲染欢迎词; 优先渲染 nickname，没有昵称才渲染 username ;
        // if (res.data.nickname) {
        //     document.querySelector('.welcome').innerText = '欢迎 ' + res.data.nickname
        // } else {
        //     document.querySelector('.welcome').innerText = '欢迎 ' + res.data.username
        // }
        let name = res.data.nickname || res.data.username
        document.querySelector('.welcome').innerText = '欢迎 ' + name
        // 2.渲染头像; 判断用户是否有图片头像;
        //  如果有图片头像，就隐藏文字头像，显示图片头像，并赋值;
        //  如果没有图片头像，就显示文字头像，并赋值，隐藏图片头像;
        let img = document.querySelectorAll('.userinfo img')//获取图片头像
        let text = document.querySelectorAll('.avatar-text') //获取文字头像
        if (res.data.user_pic !== null) {//如果有图片头像  
            // 显示图片头像
            img[0].src = res.data.user_pic
            img[1].src = res.data.user_pic

            text[0].style.display = 'none' //文字头像隐藏
            text[1].style.display = 'none'
        } else {// 如果没有图片头像  
            img[0].style.display = 'none'//图片头像隐藏
            img[1].style.display = 'none'
            // 渲染第一个单词字符 而且大写
            //字符串可以当数组取下标使用 
            let first = name[0].toUpperCase()
            // 文字头像大写
            text[0].innerText = first
            text[1].innerText = first
        }
    });
}

